package com.martin.dms.factories;

import com.martin.dms.model.Category;
import com.martin.dms.model.Item;

/**
 * Factory service for the Item entity.
 * 
 * @author mtsvetkov
 */
public interface ItemFactory {

    /**
     * Creates a new Item entity. Only the mandatory field <code>name</code> is expected.
     * 
     * @param name - the name of the item.
     * @param price - the price of the item.
     * @return the new Item.
     */
    public Item create(String name, int price);

    /**
     * Creates a new Item entity.
     * 
     * @param name - the name of the item.
     * @param price - the price of the item.
     * @param description - the description of the item (Not mandatory).
     * @param image - an image of the item (Not mandatory).
     * @param category - the category of the item (Not mandatory).
     * @return the new Item.
     */
    public Item create(String name, int price, String description, byte[] image, Category category);
}
